#include <bits/stdc++.h>
using namespace std;
#define int long long
int p[200005], sum[200005], n, res;
int find(int x)
{
if (p[x] != x)
p[x] = find(p[x]);
return p[x];
}
void merge(int a,int b)
{
a = find(a), b = find(b);
if (a == b)
return;
p[a] = b;
sum[b] += sum[a];
}
bool ck(int x)
{
while (x)
{
if (x % 10 != 7 && x % 10 != 4)
return false;
x /= 10;
}
return true;
}
int32_t main()
{
cin >> n;
for (int i = 1; i <= n; i++)
{
p[i] = i;
sum[i] = 1;
}
for (int i = 1; i < n; i++)
{
int a, b, c;
cin >> a >> b >> c;
if (!ck(c))
merge(a, b);
}
for (int i = 1; i <= n; i++)
{
int t = n - sum[find(i)];
res += t * (t - 1);
}
cout << res << endl;
}
1030B - Vasya and Cornfield | 1631A - Min Max Swap |
1296B - Food Buying | 133A - HQ9+ |
1650D - Twist the Permutation | 1209A - Paint the Numbers |
1234A - Equalize Prices Again | 1613A - Long Comparison |
1624B - Make AP | 660B - Seating On Bus |
405A - Gravity Flip | 499B - Lecture |
709A - Juicer | 1358C - Celex Update |
1466B - Last minute enhancements | 450B - Jzzhu and Sequences |
1582C - Grandma Capa Knits a Scarf | 492A - Vanya and Cubes |
217A - Ice Skating | 270A - Fancy Fence |
181A - Series of Crimes | 1638A - Reverse |
1654C - Alice and the Cake | 369A - Valera and Plates |
1626A - Equidistant Letters | 977D - Divide by three multiply by two |
1654B - Prefix Removals | 1654A - Maximum Cake Tastiness |
1649A - Game | 139A - Petr and Book |